import {QuestionSettingID, QuestionSettingURL} from './config.toml'

/**
 * 2018-12-07 hqj
 * 获取服务器时间
 * @param axios 发送ajax请求对象
 * @param kalixMessage 显示消息框对象
 * @returns {boolean}
 */
export function getServerCurrentDate(axios, kalixMessage, kalixFormatDate, callBack) {
    axios.request({
        method: 'GET',
        url: '/camel/rest/currentDates',
        params: {}
    }).then(response => {
        if (response.data) {
            callBack(response.data)
        } else {
            kalixMessage.error('查询出错，未获取到服务器时间，使用本地系统时间！')
            callBack(kalixFormatDate(new Date(),'yyyy-MM-dd hh:mm:ss'))
        }
    }).catch((e) => {
        kalixMessage.error(e.message)
        callBack(kalixFormatDate(new Date(),'yyyy-MM-dd hh:mm:ss'))
    })
}

export function getServerCurrentDateYear(axios, kalixMessage, callBack) {
    axios.request({
        method: 'GET',
        url: '/camel/rest/currentDates',
        params: {}
    }).then(response => {
        if (response.data) {
            callBack(response.data.substr(0, 4))
        } else {
            kalixMessage.error('查询出错，未获取到服务器时间，使用本地系统时间！')
            callBack((new Date()).getFullYear().toString())
        }
    }).catch((e) => {
        kalixMessage.error(e.message)
        callBack((new Date()).getFullYear().toString())
    })
}

/**
 * 2018-10-24 hqj
 * 检测题库功能是否可用
 * @param axios 发送ajax请求对象
 * @param kalixMessage 显示消息框对象
 * @returns {boolean}
 */
export function availableQuestion(axios, kalixMessage, callBack) {
    axios.request({
        method: 'GET',
        url: QuestionSettingURL + '/' + QuestionSettingID,
        params: {}
    }).then(response => {
        if (response.data && response.data.available !== undefined && response.data.available !== null) {
            callBack(response.data.available)
        } else {
            kalixMessage.error('查询出错，请联系管理员检查后台服务配置及返回数据情况！')
            callBack(false)
        }
    }).catch((e) => {
        kalixMessage.error(e.message)
        callBack(false)
    })
}

/**
 * 2018-11-21 hqj
 * 检测题库排重功能是否正在执行
 * @param axios 发送ajax请求对象
 * @param kalixMessage 显示消息框对象
 * @returns {boolean}
 */
export function questionRepeated(axios, kalixMessage, callBack) {
    axios.request({
        method: 'GET',
        url: QuestionSettingURL + '/' + QuestionSettingID,
        params: {}
    }).then(response => {
        if (response.data && response.data.repeated !== undefined && response.data.repeated !== null) {
            callBack(response.data.repeated)
        } else {
            kalixMessage.error('查询出错，请联系管理员检查后台服务配置及返回数据情况！')
            callBack(true)
        }
    }).catch((e) => {
        kalixMessage.error(e.message)
        callBack(true)
    })
}

// 使用websocket，用于客户端与服务器消息的传递(暂不使用)
export function websocket(kalixVue) {
    let ws = null
    if ('WebSocket' in window) {
        let socketUrl = kalixVue.$KalixGlobalConfig.baseWsURL + '?loginname=' + kalixVue.$KalixCatch.get('loginname') + '&wsMessage=QuestionRepeatedMessage'
        ws = new WebSocket(socketUrl)
        ws.onopen = () => {
            // Web Socket 已连接上，使用 send() 方法发送数据
        }
        ws.onmessage = evt => {
            //  获取后台消息
            /*let data = JSON.parse(evt.data)
            if (data && data.msgTag && data.msgTag.length) {
                let msg = JSON.parse(data.msgTag)
                let headerNotif = kalixVue.$notify({
                    title: msg.title,
                    message: msg.content,
                    type: 'success',
                    duration: 0,
                    onClick: () => {
                        headerNotif.close()
                    }
                })
            }*/
        }
        ws.onclose = function () {
            // 关闭 websocket
            console.log('连接已关闭...')
        }
    } else {
        kalixVue.$kalixMessage.info('您当前使用的浏览器不支持WebSocket，无法接收服务器消息！')
    }
    return ws
}
